package com.fypg.module.medical.controller.admin.registerorder.vo;

import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.fypg.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

import static com.fypg.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 挂号订单信息分页 Request VO")
@Data
public class RegisterOrderPageReqVO extends PageParam {

    @Schema(description = "", example = "15732")
    private String medicalCardId;

    @Schema(description = "", example = "1416")
    private String hospitalId;

    @Schema(description = "")
    private String hospitalEncode;

    @Schema(description = "", example = "芋艿")
    private String hospitalName;

    @Schema(description = "")
    private String departmentEncode;

    @Schema(description = "", example = "王五")
    private String departmentName;

    @Schema(description = "")
    private String doctorEncode;

    @Schema(description = "", example = "李四")
    private String doctorName;

    @Schema(description = "", example = "2")
    private String registerType;

    @Schema(description = "")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private String[] registerScheduleDate;

    @Schema(description = "")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private String[] registerBeginTime;

    @Schema(description = "")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private String[] registerEndTime;

    @Schema(description = "", example = "王五")
    private String patientName;

    @Schema(description = "")
    private String patientCardNo;

    @Schema(description = "", example = "2")
    private String patientCardType;

    @Schema(description = "")
    private String patientIdNo;

    @Schema(description = "", example = "2")
    private String patientIdType;

    @Schema(description = "")
    private String patientMobilePhone;

    @Schema(description = "", example = "1")
    private String patientGenderType;

    @Schema(description = "", example = "1610")
    private String openId;

    @Schema(description = "", example = "2870")
    private String unionId;

    @Schema(description = "", example = "1")
    private String payType;

    @Schema(description = "", example = "1")
    private String payModeType;

    @Schema(description = "")
    private String platformOrderNo;

    @Schema(description = "")
    private Boolean isPay;

    @Schema(description = "")
    private Integer totalFee;

    @Schema(description = "")
    private Integer medicalInsuranceFee;

    @Schema(description = "")
    private Integer discountFee;

    @Schema(description = "")
    private Integer payFee;

    @Schema(description = "")
    private String payTradeNo;

    @Schema(description = "")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] payTime;

    @Schema(description = "")
    private String hisOrderNo;

    @Schema(description = "")
    private String hisTradeNo;

    @Schema(description = "", example = "2")
    private String orderStatus;

    @Schema(description = "")
    private Boolean isCancelOrder;

    @Schema(description = "")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] cancelOrderTime;

    @Schema(description = "", example = "不香")
    private String cancelOrderReason;

    @Schema(description = "")
    private String waitNo;

    @Schema(description = "")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private String[] waitBeginTime;

    @Schema(description = "")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private String[] waitEndTime;

    @Schema(description = "")
    private String visitLocation;

    @Schema(description = "")
    private String visitDescribe;

    @Schema(description = "")
    private String orderSource;

    @Schema(description = "", example = "不对")
    private String orderReason;

    @Schema(description = "")
    private Boolean isHandleBusinessNotice;

    @Schema(description = "", example = "18610")
    private Integer handleBusinessNoticeCount;

    @Schema(description = "")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] handleBusinessNoticeTime;

    @Schema(description = "")
    private String payBody;

    @Schema(description = "")
    private String thirdPartyData;

    @Schema(description = "")
    private String extendData;

    @Schema(description = "")
    private Integer sortCode;

    @Schema(description = "", example = "你猜")
    private String description;

    @Schema(description = "", example = "你猜")
    private String remark;

    @Schema(description = "")
    private String registerTimeFlag;

    @Schema(description = "")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] payEffectiveTime;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

}